package com.ruoyi.web.petmall.petback.controller;



import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.web.petmall.entity.BreedEntity;
import com.ruoyi.web.petmall.entity.PetInfoEntity;
import com.ruoyi.web.petmall.entity.TypeEntity;
import com.ruoyi.web.petmall.petback.service.PetInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping(value ="/petBack/petInfo")
@Api(tags = "宠物管理")
public class PetInfoController extends BaseController {

    @Autowired
    private PetInfoService petInfoService;

    /**
     * 分页查询宠物列表
     *
     * @param petInfoEntity 宠物信息查询条件封装为 PetInfoEntity 对象
     * @return 分页查询结果
     */
    @ApiOperation("分页查询宠物列表")
    @GetMapping("/getPetInfoList")
    public TableDataInfo getPetInfoList(PetInfoEntity petInfoEntity) {
        startPage();
        List<PetInfoEntity> list = petInfoService.getPetInfoList(petInfoEntity);
        return getDataTable(list);
    }

    /**
     * 查询宠物类型下拉框数据
     *
     * @param typeEntity 宠物类型查询条件封装为 TypeEntity 对象
     * @return 宠物类型列表
     */
    @ApiOperation("宠物类型下拉框")
    @GetMapping("/getPetInfoTypeList")
    public TableDataInfo getPetInfoTypeList(TypeEntity typeEntity) {
        List<TypeEntity> list = petInfoService.getPetInfoTypeList(typeEntity);
        return getDataTable(list);
    }

    /**
     * 查询宠物品种下拉框数据
     *
     * @param breedEntity 宠物品种查询条件封装为 BreedEntity 对象
     * @return 宠物品种列表
     */
    @ApiOperation("宠物品种下拉框")
    @GetMapping("/getPetInfoBreedList")
    public TableDataInfo getPetInfoBreedList(BreedEntity breedEntity) {
        List<BreedEntity> list = petInfoService.getPetInfoBreedList(breedEntity);
        return getDataTable(list);
    }

    /**
     * 修改宠物信息
     *
     * @param petInfoEntity 要修改的宠物信息封装为 PetInfoEntity 对象
     * @return 操作结果
     */
    @ApiOperation("修改宠物信息")
    @PostMapping("/updatePetInfoList")
    public AjaxResult updatePetInfoList(@RequestBody PetInfoEntity petInfoEntity) {
        return toAjax(petInfoService.updatePetInfoList(petInfoEntity));
    }

    /**
     * 删除宠物信息
     *
     * @param id 要删除的宠物信息的 ID
     * @return 操作结果
     */
    @ApiOperation("删除宠物信息")
    @DeleteMapping("/deletePetInfoList")
    public AjaxResult deletePetInfoList(Long id) {
        return toAjax(petInfoService.deletePetInfoList(id));
    }
}
